package com.dant.interfaces
{
    import mx.core.IDataRenderer;
    import mx.core.IDeferredInstantiationUIComponent;
    import mx.core.IFlexDisplayObject;
    import mx.core.IInvalidating;
    import mx.core.UIComponent;
    
    public interface IViewPanel extends IFlexDisplayObject, IDataRenderer, IInvalidating,
                                        IDeferredInstantiationUIComponent
    {
        function set customTitleBar( value:UIComponent):void;
        function get customTitleBar( ):UIComponent;

        function get isMaximized () : Boolean;
        function get isMinimized () : Boolean;

        function set openInFullScreenMode ( value:Boolean ):void;
        function get openInFullScreenMode () : Boolean;

        function set enableSelfControlledDragAndDrop ( value:Boolean ):void;
        function get enableSelfControlledDragAndDrop () : Boolean;

        function set enableSelfControlledResize ( value:Boolean ):void;
        function get enableSelfControlledResize () : Boolean;

        function set enableSelfControlledFocus ( value:Boolean ):void;
        function get enableSelfControlledFocus () : Boolean;

        function set dragDropManager ( value:IDragDropManager ):void;
        function get dragDropManager () : IDragDropManager;

        function set resizeManager ( value:IResizeManager ):void;        
        function get resizeManager () : IResizeManager;

        function set panelFocusManager ( value:IPanelsFocusManager ):void;
        function get panelFocusManager () : IPanelsFocusManager;

        function set focusedBorderColor ( value:uint ):void;
        function get focusedBorderColor () : uint;
        function set focusedHeaderColorFrom ( value:uint ):void;
        function get focusedHeaderColorFrom () : uint;
        function set focusedHeaderColorTo ( value:uint ):void;
        function get focusedHeaderColorTo () : uint;

        function set notFocusedBorderColor ( value:uint ):void;
        function get notFocusedBorderColor () : uint;
        function set notFocusedHeaderColorFrom ( value:uint ):void;
        function get notFocusedHeaderColorFrom () : uint;
        function set notFocusedHeaderColorTo ( value:uint ):void;
        function get notFocusedHeaderColorTo () : uint;

        function maximize():void;
        function minimize():void;
        function restore():void;
        function close():void;

        function setFocus():void;

    }
}